package com.neouton.crm.sales.entity;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.crm.entity.SysUserEntity;
import lombok.Data;

/**
 * 审批表
 * @TableName sales_audit
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@TableName("sales_audit")
public class SalesAuditVO extends BaseEntityVO implements Serializable {
    /**
     * 审批主键
     */
    @TableId(type = IdType.AUTO)
    private Integer salesAuditId;

    /**
     * 审批关系主键（机会/项目主键）
     */
    private Integer salesRelationId;

    /**
     * 审批关系类型（机会1/项目2）
     */
    private Integer auditClass;

    /**
     * 审批迁移主键（项目主键）
     */
    private Integer salesMigrateId;

    /**
     * 审批状态
     */
    private Integer auditState;
    /**
     * 审核状态名
     */
    private String auditStateName;
    /**
     * 审核状态集合
     */
    private List<Integer> auditStateList;


    /**
     * 模块名
     */
    private String modelName;

    /**
     * 业务ID
     */
    private Integer businessId;

    /**
     * 审批人ID
     */
    private Integer processor;

    /**
     * 申请原因
     */
    private String reasonApplication;

    /**
     * 审批结果
     */
    private Integer processResult;

    /**
     * 审批意见
     */
    private String processComments;

    /**
     * 审批主表ID
     */
    private Integer approvalId;
    private List<Integer> approvalList;

    /**
     * 抄送对象ID，逗号分隔
     */
    private String copyFor;

    /**
     * 可用状态（软删除）
     */
    private Integer flag;

    /**
     * 机会名称
     */
    private String opportunityTheme;

    /**
     * 项目名称
     */
    private String projectTheme;

    /**
     * 创建者集合
     */
    private List<Integer> creatorList;

    private static final long serialVersionUID = 1L;

    /**
     * 前端排序标识
     */
    @TableField(exist = false)
    private String orderByColum;

    @TableField(exist = false)
    private String orderByProp;

    @TableField(exist = false)
    private String order;

    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;
    /**
     * 待办编号
     */
    private String approvalCode;

    /**
     * 转发人集合
     */
    private List<SysUserEntity> senderList;
}